Management and allocation of services using remote computer connections

ABSTRACT

A computer-implemented method for allocating services among a plurality of service operators where each capable of providing at least one service and each service operator operating a respective computer to receiving at a support server a request for service from at least one computer being operated by a user, generating a questionnaire to be answered by the user operating the at least one computer, selecting at least one service operator based upon the answered questionnaire, and establishing a service session between the at least one computer being operated by the user and the computer being operated by the at least one selected service operator for providing the requested service.

RELATED APPLICATION

This application is a continuation of U.S. application Ser. No.15/589,152 filed May 8, 2017 which claims benefit of U.S. applicationSer. No. 14/960,864 filed Dec. 7, 2015, now U.S. Pat. No. 9,646,331,which claims benefit of U.S. application Ser. No. 14/255,105 filed Apr.17, 2015, now U.S. Pat. No. 9,208,461, which claims benefit of U.S.application Ser. No. 11/732,793 filed Apr. 4, 2007, now U.S. Pat. No.8,738,777, which claims the benefit of U.S. Provisional Application Ser.No. 60/788,981 filed Apr. 4, 2006, the contents of which are herebyincorporated herein by reference in their entireties.

FIELD OF THE INVENTION

The present invention relates to the field of professional services, andmore particularly, to a professional service operator remotely accessinga user's computer to provide service.

BACKGROUND OF THE INVENTION

The highly specialized work force in modern economies must be carefullyallocated to service tasks so that workers may perform in areas in whichthey have the training or skills to perform effectively. Allocatingworkers to appropriate service tasks is a manual process, requiringsubstantial amounts of time from both the workers providing service andthe supervisors who manage the workers.

The manual steps required to allocate workers to service tasks isillustrated in the following technical support example. A computer userexperiencing technical problems with their computer calls a computersupport company. The call is routed to a help desk where a help deskworker asks a series of questions to identify the computer user'sspecific problem. If the help desk worker is not able to identify thespecific problem, the caller is transferred to a supervisor or otherhigher level worker who will attempt to identify the specific problem.Once the problem is identified, the supervisor or other higher levelemployee goes through a manual process to decide who will be dispatchedto provide service to the computer user.

These manual steps to identify the service needed and to allocate aworker to the service task are costly for both the computer user and thecomputer support company. The computer support company devotes valuabletime for lower level workers and supervisors to evaluate the serviceneeded, and to assign a service operator to the problem. The process isalso costly for the computer user who pays for the time spentidentifying the service needed and assigning the appropriate serviceoperator to the problem. The same or similar manual steps are likewiserequired when allocating service operators to service tasks in a widerange of fields other than computer technical support.

To overcome some of these limitations, remote access desktop technologyallows computer users to access and control other computers at remotelocations. GoToMyPC© is an example of software that allows a serviceoperator to remotely access a computer over the Internet. Thistechnology typically comprises two software components: a programrunning on the remote computer, and a program running on the localcomputer. Remote desktop access technology allows the service operatorto control a remote computer as if sitting in front of the remotecomputer. The service operator can run applications, access files,change configurations, or debug problems, for example.

The GoToAssist© product provides another example of remote desktopaccess technology. GoToAssist© provides functionality similar toGoToMyPC© but adds additional features such as the ability for anadministrator to review connections and manually select the computers tobe connected. GoToAssist© also allows a supervisor to review informationabout remote computer connections while computers are connected.

Existing remote desktop technology increases service efficiency byeliminating the need for a service operator to physically travel to thecomputer user's location. However, all the manual steps described abovestill need to be performed to determine which service operator willprovide the necessary support service over the remote desktopconnection. The overall process is, therefore, still highly inefficient.

SUMMARY OF THE INVENTION

In view of the foregoing background, an object of the present inventionis to reduce or eliminate the manual steps required to allocate one of aplurality of service operators, each with a different skill or skilllevel, to provide a particular service requested by a user.

This and other objects, advantages and features are provided by acomputer-implemented method for allocating services among a plurality ofservice operators each capable of providing at least one service andeach service operator operating a respective computer to receive at asupport server a request for service from at least one computer beingoperated by a user, generating a questionnaire to be answered by theuser operating the at least one computer, selecting at least one serviceoperator based upon the answered questionnaire, and establishing aservice session between the at least one computer being operated by theuser and the computer being operated by the at least one selectedservice operator for providing the requested service.

In some embodiments, the requested service is performed on the at leastone computer being operated by the user, but it may also be performed onthe computer being operated by the at least one selected serviceoperator. Alternatively, the requested service may be performed at aservice workspace that is separate from the at least one computer beingoperating by the user and the computer being operated by the at leastone selected service operator, with the service workspace beingaccessible by each. If such a service workspace is used, the at leastone selected service operator may continue to provide service on theservice workspace even after the user terminates his or her connectionto the service workspace.

Additionally, an established service session may also include a computerbeing operated by a second service operator, where the second serviceoperator also provides the requested service. A questionnaire may alsobe used to request information relating to a type of service to beperformed, and may optionally be generated based upon informationcollected from the at least one computer being operated by the user. Aquestionnaire may also prompt the user to select a priority level of therequested service, including priority levels corresponding to a level ofurgency of the requested service, the level of expertise provided by theplurality of service operators or other priority levels.

Yet another aspect is directed to providing billing information to theuser during the service session, with the billing information beingupdated during the service session. Billing information may also beprovided by billable minutes that may be charged when the at least oneselected service operator is active, and if the at least one selectedservice operator is not active, then the user may not be billed untilthe at least one selected service operator is active again. The servicesession may also include a supervisor monitoring during the servicesession at least a portion of the service provided by the at least oneselected service operator.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing a support server receiving andevaluating a user's service request, and assigning the appropriateservice operator to handle the service request in accordance with thepresent invention.

FIG. 2 is a flow diagram showing a method for allocating services amonga plurality of service operators where each service operator is capableof providing at least one service in accordance with the presentinvention.

FIGS. 3-7 are screen prints showing the process of obtaining andinstalling the agent software module on the user's computer inaccordance with the present invention.

FIG. 8 is a screen print showing a user initiating a service requestusing the agent software module installed in FIGS. 3-6 in accordancewith the present invention.

FIGS. 9-15 are screen prints showing one example of the service requestwizard being used by a user requesting help with legal documentpreparation in accordance with the present invention.

FIGS. 16-22 are screen prints showing another example of the servicerequest wizard being used by a user to request help with a specificsoftware product in accordance with the present invention.

FIGS. 23-28 are screen prints showing the appropriate service operatorcommunicating with the user and establishing a remote desktop connectionin accordance with the present invention.

FIGS. 29-30 are screen prints showing the end of the service process andfeedback being provided by the user in accordance with the presentinvention.

FIG. 31 is a screen print showing the supervisor interface with anoverview of all operator activities and current service requests inaccordance with the present invention.

FIG. 32 is a flow diagram showing a method of categorizing operators inaccordance with the present invention.

FIG. 33 is a flow diagram showing the automated process for identifyingthe service needed by a user, and assigning the appropriate serviceoperator to provide the service in accordance with the presentinvention.

FIG. 34 is a flow diagram showing decisions that may be made regardingquestionnaire creation, billing information and service operator andsupervisor involvement in accordance with the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention will now be described more fully hereinafter withreference to the accompanying drawings, in which preferred embodimentsof the invention are shown. This invention may, however, be embodied inmany different forms and should not be construed as limited to theembodiments set forth herein. Rather, these embodiments are provided sothat this disclosure will be thorough and complete, and will fullyconvey the scope of the invention to those skilled in the art.

The invention addresses the use of remote desktop access to streamlineproviding of a wide range of services through automating processes thatwere previously provided manually.

With reference to FIG. 1, a user requests service via the user'scomputer 50 using an agent software module 52, and the request iselectronically transmitted to a support server 54 at the serviceprovider's location 56. A service request wizard 58 on the supportserver 54 requests information from the user regarding the type ofservice needed. In FIG. 1, the service request wizard 58 is shown at thesupport server 54 but may be located on a user computer 50, on a virtualdesktop, on some other computer or service workspace or some combinationof the above. Similarly, the agent software module 52 is illustrativelyshown on the user's computer but may be located on a virtual desktop,some other computer or workspace or some combination of the above. Acombination of computers or service workspaces may be utilized byperforming some of the processing for the agent software module 52 orthe service request wizard 58 on more than one computer or serviceworkspace. After the service request wizard 58 obtains sufficientinformation regarding the type of service needed, the service requestwizard 58 evaluates the predetermined skill or skill level of theavailable service operators 60(1)-60(N) and selects the appropriateservice operator to provide the service. Reference numeral 60 is used togenerally reference a service operator or operators. Although theservice operators 60 are shown next to the support server 54 in FIG. 1,the service operators are not required to be physically present at thesame location as the support server. Similarly, the supervisor 62 may bepresent at the location of the support server 54 but is not required tobe physically present at the support server's location. Referencenumerals 62(1) through 62(N) are used to indicate that there may be onesupervisor 62 or multiple supervisors 62(1) through 62(N). Referencenumeral 62 is used to generally reference a supervisor or supervisors.The service operator 60 then contacts the user to begin providingservices, and uses a remote desktop connection or some other servicesession connection to the user's computer 50 to provide services moreefficiently.

With reference now to FIG. 2, a computer-implemented method forallocating services among a plurality of service operators 60 isprovided in which each service operator is capable of providing at leastone service and each service operator is operating a computer. Themethod begins at start (Block 70) and proceeds to receiving at a supportserver a request for service from at least one computer being operatedby a user (Block 72). After the request for service is received, aquestionnaire to be answered by the user operating the at least onecomputer is generated (Block 74). As is described in more detail below,the questionnaire may be generated based on a variety of criteria andmay request a variety of different information from the user todetermine the area or areas of service needed. The questionnaire is thenused to select at least one service operator 60 (Block 76). After atleast one service operator 60 is selected, a service session between theat least one computer being operated by the user and the computer beingoperated by the at least one selected service operator is establishedfor providing the requested service (Block 78). After services have beenprovided, the service session may continue but is preferably terminatedat Block 80.

With reference now to FIG. 32, from the start (Block 100) a userinitiates a service request (Block 102) using the agent software module52. The support server 54 evaluates the incoming request in Block 104 todetermine what type of service request wizard 58 should be used toidentify the specific service needed. The service request wizard 58preferably provides a questionnaire for the user to determine what typeof service the user needs. For certain embodiments, all users willreceive the same questionnaire. In other embodiments, the questionnairecan be targeted to specific groups, such as one questionnaire targetedto all users from a corporate client, while a different questionnaire orset of questionnaires may be used for individual, non-corporate clients.In still other embodiments, the questionnaire may be targeted to groupsof users by known areas of service needed, such as a law-focusedquestionnaire where it is known that legal services will be requested,or a technical support questionnaire where it is known that technicalsupport will be requested. Depending on the variety of different userservice needs, any combination of the above types of questionnaires aswell as the basic and intuitive wizard questionnaires below may be usedto determine the correct service operator 60 to provide service.

The questionnaire may be presented to the user via a basic servicerequest wizard 58, an intuitive service request wizard 110 or somecombination of the two. If the user is aware of the specific area inwhich service is needed, the basic service request wizard 58 allows theuser to make category to sub-category selections in Block 106 until theservice request wizard 58 identifies the specific area in which serviceis needed. If the user has been incorrectly routed to the basic servicerequest wizard 58, and does not actually know the area in which serviceis needed (Block 108), the user is routed to the intuitive servicewizard in Block 110. Additionally, using either request wizard, problemdefinition progress may be terminated where additional details regardingthe service needed by the user are not necessary to make best selectionfrom available service operators 60.

The intuitive service request wizard 58 is used to help the useridentify the specific area in which service is needed. If the intuitiveservice request wizard 58 in Block 110 is not successful in identifyingthe area in which service is needed, the request is routed to a “live”service operator 60 or supervisor in Block 114 to help the user identifythe specific service area.

The service request wizard 58 or other questionnaire may also take intoaccount user's preferences, online status, availability intervals,service operator 60 feedback ratings and seniority, language preferencesand other information.

After the specific service area and/or level of service is identified inBlock 108 or 112, the user is optionally asked to input billinginformation in Block 116, such as the level of priority and hencecharges for service requested. If a service area or level of service isnot determined, the method routes to a service operator 60 or supervisor62 for manual determination (Block 114). Once the billing information isobtained in embodiments where billing information is requested, theservice request wizard 58 compares the services requested to thequalifications of the available service operators 60, and selects theservice operator 60 best suited to provide the service in Block 118. Thesupport server 54 or the service operator 60 then prompts the user toestablish some level of connection with the service operator 60 (e.g.,chat, voice over IP, remote desktop connection) in Block 120. Once theuser accepts the service operator's 60 request to provide service, theservice operator 60 provides services to the user. Once service iscomplete, either the user, the service operator 60 or the support server54 can terminate the session, and the process is stopped at Block 122.

A remote computer connection or other service session between a serviceoperator 60 and the user will typically consume at least some resourcesfrom the user computer 50 and the computer used by the service operator60. As will be appreciated by those skilled in the art, a greaterportion of the service may be performed at one location, such as theuser's computer 50 or the computer used by the service operator 60,while less or perhaps none of the service work is performed at otherlocations during the service session. The computer used to perform theservice will typically have more of its resources consumed (e.g.,processing capacity, memory consumption, etc.) than will computers atlocations where less processing or no processing of service work occurs.A variety of different configurations may be used during the servicesession to determine which resources are used.

The service operator 60 may provide service directly on the user'scomputer 50 utilizing the resources of the user's computer, such as theuser computer's hardware and software to provide service. The serviceoperator 60 may also provide service to the user while utilizing theresources of the computer used by the service operator. In anotherembodiment, the service may be provided utilizing the resources of thesupport server 54 or some other computer.

The service workspace 64 is the place where the service is provided. Theservice workspace 64 may optionally be a virtual desktop or othersimilar workspaces that allow service work to proceed in a separateenvironment. The service workspace 64 for use in a service session maybe provided on the user computer 50, the computer used by the serviceoperator 60, the support server 54 or through some other computer. Onesignificant advantage of the service workspace 64 when configured as avirtual desktop type workspace is that it allows service to be providedby a service operator 60 while still allowing the user computer 50 to beused for tasks other than the service provided by the service operator.In situations where the user computer 50, the computer used by theservice operator 60 or other computers involved in the service sessionare not able to provide a virtual desktop type service workspace 64, theservice workspace may be provided by the support server 54 or othercomputer.

The virtual desktop type service workspace 64 may be accessed at thesame time by the service operator 60, supervisor 62, and the user duringthe service session. This allows the service operator 60 to provideservice, the supervisor 62 to monitor as well as provide service asanother service operator, and also allowing the user to view the servicebeing provided and optionally obtain other information such as billinginformation. Where a virtual desktop type service workspace 64 is usedor where the service is provided primarily or entirely using a computerother than the user computer 50, the user may choose to terminate theuser computer connection to the service session while the serviceoperator 60 and, optionally, a supervisor 62 continue to provide serviceon the service workspace. Where service is still being provided afterthe user terminates the connection to the service session, the user mayestablish a connection to the service session after termination tocontinue viewing the service being provided.

During the course of a service session, the supervisor 62 may optionallymonitor the progress of the services provided by establishing aconnection to the service session. This preferably allows the supervisor62 to view the services being provided to the user in the same way as ifthe supervisor were the service operator 60. The monitoring may beconfigured such that a supervisor 62 cycles through the service sessionsin progress in a predetermined order or that the supervisor is randomlyconnected to service sessions. In the alternative, the supervisor 62 maybe connected to a service session for monitoring using criteria thatselect certain service sessions. For example, if a service session istaking longer than expected, the supervisor 62 may be connected todetermine why the service session is taking longer than expected.

The monitoring may be conducted with notification to the user, theservice operator 60 or both. In the alternative, the supervisor 62 maymonitor the services provided by the service operator 60 while remaining“invisible” by not providing notification of the monitoring to theservice operator, the user or both. This feature is particularlyadvantageous for providing an additional incentive for service operators60 to provide high quality service because they do not know if asupervisor is monitoring the service session or not.

In some service sessions, the supervisor 62 may decide to either takeover the service operator's 60 role and actively provide service to theuser or may decide to provide additional service to the user while theservice operator 60 who joined the service session first continues toprovide service as well. A supervisor 62 that provides service operator60 type service during a service session may be referred to as a serviceoperator during the time he or she provides service in the servicesession.

With reference to FIG. 33, a method of categorizing service operators 60where each operator is capable of providing at least one service in aservice session is also provided. The method begins at start (Block 132)and then proceeds to receiving information regarding qualificationsreported by a plurality of service operators 60 at Block 134. Afterreceiving the reported information, the plurality of operators 60 isthen tested to determine test-based qualifications (Block 136). Theservice operator 60 testing may confirm that the service operatorspossess qualifications in the reported area of expertise or level ofskill within an area of expertise, and may optionally test foradditional areas of expertise or levels of expertise within an area. Theservice operator 60 reported qualifications and test-basedqualifications are preferably obtained before the service operatorbegins to provide service to users. Additional information relating toqualifications may be obtained by receiving service operator performancedata collected during a service session (Block 138). The serviceoperator 60 performance data may include information reported by theuser which is preferably obtained at the end of a service session, datacollected by one or more supervisors 62 during a service session, datacollected by the support server or other data. The service operator 60data obtained from these sources is then preferably used to determiningcategories for the plurality of service operators (Block 140). Thecategories into which the service operators are placed preferablyincludes both areas of service operator 60 expertise and the level ofservice operator expertise within an area and may optionally includeother information.

After service operators 60 are placed into categories, the categoriesmay be dynamically updated following each service session using theservice operator performance data obtained in the session (Block 142).In the alternative, the categories may be updated following apredetermined number of service sessions (e.g., updating after every tenservice sessions) or may be updated where performance data from asession would cause a significant change in a service operator's 60status within one or more categories (e.g., negative user feedback thatwould cause a service operator to be removed from an area of expertiseor would cause the service operator's level of skill to be adjusteddownward within an area of expertise). If updates will not be performedfollowing service sessions (Block 142), the method then terminates atBlock 148. Where updates are performed following service session, themethod checks to determine if a service session requiring update ofservice operator 60 categories has occurred (Block 146). If so themethod preferably returns to Block 138 to receive service operator 60performance data from the serviced session. In the alternative, themethod may proceed back to the start (Block 132) and proceed through theentire method again.

FIG. 34 provides a method illustrating decisions that may be made duringservice sessions. The series of decisions shown in FIG. 34 are providedfor illustrative purposes, do not constitute all the decisions that maybe made during a service session and need not all be performed in aservice session in the order shown. Moreover, at least some of thedecisions such as whether to provide billing information or requiringmonitoring may be made by a service operator 60, supervisor 62, the useror by some other individual(s) or a combination of the above. In thealternative, one or more of the decisions may be made “automatically”(i.e., without human intervention) using decision-making criteria put inplace before the service session.

The method illustratively begins at start (Block 150) and proceeds tothe user initiating the service request process (Block 102′), afterwhich a questionnaire is generated (Block 152). At this point, billinginformation may be provided during the session or not provided (Block154). If billing information is provided, it may be provided in avariety of ways (Block 156). After the decision regarding providingbilling information, the method continues to decision block 158 wherethe decision to provide supervisor 62 monitoring or service byadditional service operators 60 is made. If monitoring or more serviceoperators 60 are needed, one or both are provided at Block 160. If theyare not required, the method proceeds to decision Block 162 where thedecision to create a separate service workspace 64 such as a virtualdesktop is made. If a separate service workspace 64 is needed, it isprovided at Block 164, after which the method may terminate at Block166. If no separate service workspace 164 is needed, the methodterminates at the finish (Block 166).

Categories of Involved Individuals

There are typically four categories of individuals involved in theimplementation of the present invention on the service operator 60 side,including a service operator, supervisor 62, executive andadministrator. These are preferably not account types, but instead arepreferably roles to identify general groups of participants in thesystem. The present invention may be implemented using less than all ofthe above categories of individuals.

When the user experiences a problem or otherwise needs service, the usermay initiate the support process by requesting help via the agentsoftware module 52 obtained through the company website or some othersource. The service operator 60 is preferably an employee/subcontractorof a service provider 56. The service operators 60 are waiting forsupport requests from customers, and may provide support by chat, voiceover IP and by a remote desktop session or other service session. Theservice operator 60 preferably has limited access to end-user accountinformation to protect end-user privacy. The supervisor is an employeeor independent contractor whose responsibility is to overview supportprocess, and to intervene if needed. The executive is preferably a topmanager with full access rights in the system. The administratorperforms a technical administration role and may be an employee withadministrative access to the system. The administrators can preferablychange the configuration of servers and other modules.

Service Request Initiation and Processing

One of the most significant advantages of the present invention is theway in which it allocates service operators 60 to the service tasks tobe performed with little or no manual intervention from the serviceprovider 56. The support server 54 preferably continuously monitorsservice operator 60 performance and combines it with user feedback todynamically adjust service operator 60 access privileges, ratings, andconfidence level for each skill area serviced by the service operator.Automating the allocation of service operators 60 to service tasksensures that the service work is performed more quickly and reduces theoverhead involved in human processing of service requests. Mostimportantly, the appropriate service operator 60 is allocated to theservice to be performed.

An example showing use of one embodiment of the invention will now bedescribed. If a user has not created an account and downloaded the agentsoftware module 52, the user preferably accesses the web interface (FIG.3), create the account (FIG. 4) and download the agent software module52 (FIG. 5). This process is preferably made as “seamless” aspossible—so downloading of the agent software module 52 should look likea step in requesting support. The agent deployment package is preferablya single executable file which is downloaded to the User's hard drive.The agent software module may install itself as a Windows service onfirst run so that it starts every time the system starts. To uninstallit user preferably should run an executable with specific key.

Once installed, the agent software module 52 preferably does not listenon any ports, but instead, remains prepared to initiate a TCP/IP orother connection to the support server, registering upon connection(using its unique Agent ID and login credentials) and waiting forcommands. The support server address is preferably built into the agentsoftware module but may be modified.

After installing the agent software module 52 (FIG. 6), the userdouble-clicks an icon to create a help request (FIG. 7). The icon may bea desktop icon, a tray icon, or some other type of icon.

Because confidential information may be transmitted over the connectionbetween the user and service operator 60, security measures arepreferably used to control access to information. For example, theremote desktop connection between the user and service operator 60 ispreferably a secure connection that does not allow third-parties toaccess the information shared between the user and service operator.Similarly, service operators 60 and Supervisors 62 may have differentlevels of access to user information and other information usingadjustable privileges, as will be appreciated by those skilled in theart.

If service of more than one type is available, the user selects the typeof support requested as shown in FIG. 9. The user can initiate a helprequest using the agent software module 52—pressing “request support”icon and using the service request wizard 58. After the user has loggedin, the service request wizard 58 allows the user to select from a listor tree of service areas and enters a description of the problem andalso select from any applicable billing options presented. FIGS. 9-15show this service request wizard 58 process to request service withlegal documents. FIGS. 16-22 show a similar process to request serviceregarding a specific problem with the Adobe Acrobat© softwareapplication. These different examples are provided to illustrate thatthe invention is not limited to any particular field of service, and maybe used with any service where remote access to a user's computer 50would be advantageous.

The requests for the type of service needed at FIGS. 9-12 and 16-18 showrelatively sophisticated users who understand the specific area in whichthey need service. Different service request wizards 58 may be necessaryfor other users that know they need service but are not sophisticatedenough to know the specific area of service needed. A computer technicalsupport example will illustrate how this works. A user initiates aservice request as described above because his computer applications aremalfunctioning or “crashing” (i.e., rendered temporarily unusable). Inthis situation, the service request wizard uses the computer's currenthardware and software inventory lists and crash logs to cross referenceknown bugs and interoperability issues, and then 58 asks a series ofquestions designed to narrow down the potential causes of the problembefore a service operator 60 is assigned to the service request. Thequestions asked by the service request wizard 58 will typically be ofthe type that a service technician would ask when responding to aservice request. Many of the questions are likely to be questions towhich yes or no axe appropriate answers while other questions may askthe user to enter in an error message received or other informationdescribing the service desired which may then be matched to a list oferror messages or other criteria to identify the potential problem.

The service request wizard 58 can also “monitor” problem definitionprogress, and if additional detailing is not necessary to make bestselection from available service operators 60, the support server 54notifies the user and routes the call to the appropriate serviceoperator 60. Further flexibility may be provided by utilizing chat-onlyservice operators 60 to provide Tier-1 problem identification assistanceand answers to basic questions, as well as routing to appropriateservice operators 60.

Automating this process of identifying the problem with the servicerequest wizard 58 provides several advantages. First, the user ispreferably not billed for support service based on time during theservice request wizard 58 process, thus saving the user money. Second,once the problem is identified using this automated process, a singleappropriate service operator 60 is preferably assigned to fix theproblem. Identifying the problem first avoids a scenario where oneservice operator 60 is connected to the user and identifies the problem,but another service operator 60 has to be assigned to fix the problem.If such a situation does occur, the first service operator 60 places theuser back in the queue to be routed to the next available serviceoperator 60 with the right skill set to fix the problem. Third, theservice operator 60 preferably is only connected once the specificproblem or area of the problem is identified, thus reducing the amountof time necessary to solve the problem.

There are a number of situations in which a user may have multipleaccounts, such as a personal account paid for by the individual, and acorporate account paid for by the individual's employer. If the user hasaccess to more than one account, the user will then preferably be askedto select the appropriate account for billing purposes (FIGS. 14 and20).

If multiple levels of support are available, the user will then beprompted to choose the desired level of service (FIG. 21). FIG. 21 showsa three-tier “regular,” “priority,” and “emergency” set of serviceoptions. The “regular,” “priority,” and “emergency” rates may correlateto Tier-1, Tier-2, and Tier-3 qualified support service operators 60. Agreater or lesser number of service priority options may be provided,depending upon the type of service being provided. The higher priority,typically more expensive, service options may provide one or more ofseveral advantages to the user. Higher priority service requests may berouted to more experienced service operators 60. Higher priorityrequests may also provide more rapid access to service operators 60during periods of heavy service request volume. When service requestsare received from a user, the request is preferably transferred to theappropriate service operator 60 immediately. During periods of heavierrequest volume, the request is placed in a queue to await the nextavailable service operator 60 with the appropriate skills to provide therequested service. The queue is handled on a first come, first servebasis, with the appropriate service operator 60 being connected to thefirst user requesting service. Requesting higher priority support mayallow the user to have access to a service operator 60 even though lowerpriority support requests that were made earlier in time are still inthe queue.

Once the user has entered the information necessary to identify theproblem and the user has selected from any applicable billing optionspresented, the user is preferably presented with a summary screen tosummarize the billing details and information gathered by the servicerequest wizard 58 (FIGS. 15 and 22). After reviewing the summaryinformation, the user then agrees to be connected to the appropriatesupport service operator 60 using criteria described below. Theappropriate service operator 60 receives the user's request for serviceand accepts the request (see FIG. 23 showing the service operator's 60computer at the time the request is received). To handle situationswhere the service operator 60 has stepped away from their workstation,as well as to enable re-routing of requests that include manualdescription which the service operator 60 feels inexperienced to handle,the service operator 60 has the option not to accept the supportrequest, or the control module will automatically reject the supportrequest and log off the service operator, preferably after a 15 secondtime-out period has elapsed. Where the service operator 60 rejects arequest, the service operator preferably enters a reason for therejection.

When the service operator 60 agrees to handle the service request,several options are available. The service operator 60 may beimmediately connected to the user's computer 50 using remote desktopsoftware similar to the remote desktop software described in thebackground above.

Because many users are not immediately comfortable with anotherindividual being able to control the user's computer 50 so quickly,intermediate steps may be provided. For example, the user may beprompted to accept the service session (FIG. 24). If the user takes noaction, the support request preferably terminates automatically. In theexample provided in FIG. 24, the “reject” button is counting down fromten seconds. At the end of ten seconds, the support session request willbe automatically rejected unless the user takes some action. Other timeperiods may be appropriate depending on the nature of the services beingprovided or the type of user.

A further intermediate step may be provided where the service operator60 chats with the user, as shown in FIG. 25, before establishing aremote desktop session. The chat may be used to further identify theservice needed and confirm that the service operator 60 has theappropriate skill set to provide the needed services. FIG. 26 shows thechat session from the service operator's 60 computer.

FIG. 27 shows the service operator 60 prompting the user to establish aremote desktop session. The remote desktop session prompt preferably hasa time that will reject the request automatically if no action is taken.Once the remote desktop session is established (FIG. 27), the serviceoperator 60 can then take action on the user's computer 50 as if theywere sitting right in front of it, enabling the service operator 60 toprovide highly-effective service to the user.

The user preferably has the ability to terminate the remote desktopsession at any time by taking an action such as pressing the “Esc”(escape) key on the user's keyboard. The session may also be terminatedat any time by the service operator 60. Easy service session terminationallows the user to feel more comfortable about receiving services over aremote desktop connection.

After the service operator 60 has provided the requested services, theservice session may be terminated by either the user, the serviceoperator 60, or a supervisor or administrator for the project (FIG. 29).After the service session is terminated, the user may provide feedback,as shown in FIG. 30, regarding the service session. After the servicesession is terminated, the service operator 60 returns to await the nextuser requesting support in that service operator's 60 area of expertise(FIG. 31).

The administrator and supervisor 62 preferably have all the abilitiesavailable to the service operator 60, as well as additional abilitiesdescribed in more detail below. Once the service session is accepted andthe service operator 60 is devoting service time to the user, the userbegins to be billed for service time as shown by the billing summary boxin the top right corner of FIG. 25. The billing preferably begins assoon as the service operator 60 is providing service time, whether byremote desktop connection, chat client, voice over IP or otherconnection.

The billing may be charged in any time interval and preferably on aminute-by-minute basis instead of the larger time intervals such ashour, half-hour, or quarter-hour used in traditional billing practices.Automated minute-by-minute billing provides a number of advantages.First, the service operator 60 is not required to manually track servicetime, an activity which can occupy a substantial portion of a serviceoperator's time. Second, minute-by-minute billing provides highlyprecise billing, ensuring that the user is only charged for timeactually spent providing service. Billing methods in the prior art billin large blocks of time that are likely to result in over-billing (e.g.,the service operator 60 provided services for 46 minutes but billed theuser a full hour of time). Third, the user sees the billing timeaccumulating on the user's computer 50 screen, and may also see billingtime stopped when the service operator 60 is idle for more than twominutes, providing the user with additional assurance that the user isonly being billed for actual service time.

Once the service session is complete, the user is preferably chargedimmediately for the service session. For individual users, the billingis preferably done by charging a user credit card associated with theaccount. User's may also be charged by transferring money from otherelectronic accounts such as a Paypal© account. Frequent credit cardcharges will typically not be appropriate for corporate accounts. Forthese and other large accounts, services may be paid for by depositinglump sums using a credit card, removing money from a debit account, byelectronic funds transfer (EFT), by automated clearing house (ACH)transactions or other means.

User access to the support server 54 may be structured so that the useris only able to access support services from a single computer, such asthe user computer 50 at an office location for a corporate account. Inthe alternative, user access may be structured so that the use isallowed to login and receive support from any computer. The supportserver 54 preferably collects certain information from the user'scomputer 50 such as hardware and software configuration, thus avoidingthe need to ask the user to provide that information. The informationpreferably obtained is tracked by the support server 54 to allow theservice request wizard 58 or other questionnaire to more rapidlyidentify the service needed (e.g., more rapidly identifying a singleproblem or area of problems that occurs repeatedly). The informationpreferably obtained will also preferably allow the support server 54 toidentify the different computers from which the user is requestingservice.

The user computers 50 described in the above examples may beconventional workstation computers as understood by those skilled in theart but may also be servers, virtual desktops, personal digitalassistants (PDAs), home and business automation systems, securitysystems, multimedia presentation systems, or other systems capable ofvisually displaying service related information or instructions. Asother electronic devices such as home appliances and vehicles becomeaccessible through computer networks, the present invention may be usedto provide services through or on these devices. For example, a businessor home security system, home automation system or entertainmentappliance that needs configuration or programming service will initiatea service request as described above and the appropriate serviceoperator 60 will remotely access the appliance using a computer networksuch as the Internet and provide services.

Alternatively, the user computer 50, the computer used by the serviceoperator 60 or other computers involved in the service session mayinclude a “dumb” terminal that relies on another computer or computersto perform processing tasks, as will be appreciated by those skilled inthe art. Where the user computer 50, computer used by the serviceoperator 60 or other computer includes a dumb terminal, the usercomputer, computer used by the service operator or other computer may bethe dumb terminal and the computer on which it relies for processingcollectively (e.g., the user computer 50 in this example is the user'sdumb terminal and the computer used for processing together). In thissituation, the agent software module 52 may be installed on theprocessing computer portion of the user computer 50, and the computer onwhich the dumb terminal relies for processing may be the computerestablishing a connection to the service session.

Systems to provide service according to the present invention may be setup on separate partitions in one computer or physically separated onseparate computers. The partitions may be divided by industry, region,country, language, partner-based service areas, specialty and/or othercriteria. The partitions may be hardware (e.g., physically separatedcomputer or computing components) or software based partitions. Thepartitions allow services to be provided using different rules for eachpartition area, prevents information from a system in one partition frominadvertently being made accessible in a separate partition and allowssystems in separate partitions to be branded separately. For example, amanufacturer may run a support system using the present invention inwhich only its support staff are available as service operators 60. Inthe alternative, a separate partner-based partition could be used thatutilizes the manufacturer's support staff as service operators 60 anduses non-manufacturer service operators when additional serviceoperators are needed. The need may be determined by excess demand duringcertain times, or may be provided from a different time zone when themanufacturer's service operators 60 are not at work, or based on othercriteria. Service operators 60 associated with one partition may be madeavailable in other partitions if desired. Systems to provide servicesaccording to the present invention may also be partitioned by language,so that the service operators 60 communicate in the preferred languageof the user. Language may also be a factor in determining how toallocate service operators 60 to users within a system on a singlepartition.

The support server 54 may be constructed using a wide variety ofhardware and software implementations. It is preferably integrated witha web server to provide a web interface to users, service operators 60,supervisors 62 and and/or all other system participants. The supportserver 54 may also interact with a controller on one or more serviceoperator 60 computers that allows the operators to establish servicesession connections through the support server. The support server 54also preferably accomplishes one or more of the following tasks: actingas a relay between controllers and agents, both agents and controllersmay register at the support, and when help request is given to a serviceoperator 60 and accepted by the service operator, support server 54initiates the remote support session, identifying and/or authorizingsystem participants, tracking service operators' 60 availability status,processing help requests from users, distributing these amongst serviceoperators 60, tracking support sessions, recording them, storingfeedback from users and/or service operators, storing various sessiondata, parameters, and/or events, maintaining support session security,billing users for support session, calculating payout for serviceoperators 60, calculating payout for referral commissions such as salesand marketing agencies, etc., keeping logs of operations, handling useror service operator 60 surges, and/or shortages which may include pagingoffline service operators and supervisors.

Several support servers 54 may be bound into a “cluster”, enablingredundancy and load balancing—that is, they may appear as a singlesupport server to controllers or agent software modules 52 anddistribute incoming connections amongst themselves.

As sensitive information may be stored on server (e.g., users' personaldata, billing data, customer's business data, vendor softwarelicenses/keys, etc.), it is preferably as secure and “hack-proof” aspossible and preferably implements an access control and logging system.

The support server 54 preferably listens on a common port such as SSL443 for incoming connections from controllers and agent software modules50. It may accept incoming connections, initiate authenticationprocedure, and after successful authentication, the controller and agentsoftware module 52 may be marked as “online” in the support server 54database and supervisors' 62 interface.

The web server may be constructed using a wide variety of hardware andsoftware implementations. It preferably accomplishes one or more of thefollowing tasks: billing history viewing, session/inventory history anddetails viewing, account/profile management, statistics (reporting),tariffs management, system configuration and maintenance, and/or requestdistribution rules “tuning”.

Accounts or profiles for all entities involved may be managed flexibly.Service operator 60 accounts are preferably effective both in the webinterface and controller application. Each account's credentialspreferably consist of username and password. After the operator haslogged in, the system preferably assigns him “available” status, untilchanged otherwise. In web interface, manual and automatic (e.g., timeperiod) logoff options are preferably present.

User accounts typically contain personal information, and are preferablybound to a specific person. Several billing account bindings can beadded to each user account. Any number of computers identified usingagent software module 52 ID's or hardware ID's or other identifiers canbe supported under a user account. Corporate and vendor billing accountscan be created with restrictions on type and amount of support availableto each user.

Corporate accounts are preferably managed by a company representative,or a person having enough rights to define the company's policy onsupport provisions for its. employees. Likewise, the vendor accounts arepreferably managed by the Vendor's representative. To add a binding tocorporate support accounts, the user may be required to confirm hisright to do this by entering a validation code which may be an employeeID, software key, or other code. With regards to login credentials,passwords are preferably entered each time the person logs in to thewebsite and are preferably not cached. Agent and controller loginspreferably have the option of being cached at the user's discretion, andpreferably use encryption algorithms such as twofish or blowfish forstorage and transmission, along with optionally auto-generated privatekeys (e.g., time-based keys) to isolate and protect each login.

Corporate accounts for corporate purchasers of services may include oneor more of the following items: company name (entered by corporate userswhile creating their sub accounts), company coordinates/contact person,restrictions/privileges for child accounts, number of agent softwaremodule IDs per account, support quotas, support hours, generalguidelines for operators for supporting this company personnel (e.g.,employees can request help on playing chess game, but all other gamesare forbidden), or lists of sub-accounts registered with this account,each preferably linked to a corresponding profile. Optionally,restrictions can be set individually for every child account.

User accounts may include one or more of the following items: one ormore billing account bindings, private billing account (none or single),corporate (none or single), vendor software support account (anynumber), contact/personal information, login/password, PC history, listof agent software module 52 ID's used under this account, applicationhistory for specific agent software module ID (with optionalhighlighting of supported software packages), hardware history forspecific agent software module ID, both application and hardwarehistories can be viewed in highlight changes mode, or link to customizedsupport history.

Service operator 60 and supervisor 62 accounts may be configured toallow different levels of access to information. For example, theservice operator 60 account preferably provides privileges for simplesupport call handling and information relating to calls, includingaccess to some statistics and support history. Special service operator60 accounts may also be created that are preferably the same as regularservice operator accounts with “group-level” access to performmaintenance on assigned systems supervisor 62 accounts may include fullservice operator and special service operator capabilities, and may alsohave all necessary privileges to perform supervision of supportprocesses. Additional privileges for supervisor 62 accounts may include:view live user/operator support sessions, intercept, assist, andtransfer sessions from one operator to another, resolve user feedbackissues, adjust billing and commit session charges, adjust serviceoperator 60 skill levels and experience rankings and/or modify serviceoperator privileges. Management and additional privileges assignment arepreferably done by superior account type only (e.g., by supervisors 62for operators, by executive for supervisors). In addition, it may bedesirable for all service operator 60 and user accounts are to remain“anonymous” to each other to protect privacy and ensure equality.

Setting operator availability status may be handled in a variety ofways. Operator availability status options may include “online oroffline”, “available”—such as when the service operator 60 is online andnot working on a request, “completely busy”—automatically set whenservice operator 60 accepts a request, or “partially busy.” A serviceoperator 60 may set this status while long maintenance operations areperformed. The billing tariff may be lowered during such a period, butthe service operator 60 gets a chance to receive additional helprequests during this time. Additional status possibilities include“available for problems requiring immediate attention”—A serviceoperator 60 may set this status, for example, if he is working on user'scomputer 50 while the user is away, and so the service operator 60 canpause the session easily to answer an emergency request. A “timeavailable left” status may be introduced if the request was marked by auser, supervisor 62 or other service operator 60 who evaluated thisrequest previously as “long operation” status.

Operator area or areas of expertise and level of skill within the areaof expertise may be determined in a variety of ways including throughoperator self-reporting, testing operators, through feedback fromservice sessions and other ways. Information concerning operator area ofexpertise and level of expertise may be entered by the service operator60 but are preferably reviewed and confirmed by a supervisor 62 before aservice operator begins providing services. After review by thesupervisor 62, the information about operators may be locked to preventoperators or others from changing the information. Related areas ofexpertise may be tracked in a tree list showing areas and sub-areas ofskill. Information concerning area of expertise and level of skill maybe dynamically adjusted based on information obtained from servicesessions including user feedback. In addition to area of expertise andlevel of skill information, other information concerning friendliness,communication skills and other information may also be tracked.

Service operator 60 load balancing and history of service sessions mayalso be used to assist in determining the appropriate service operator60 to be used in a service session. For example, to distribute workevenly, when selecting between equally skilled service operators 60, thesystem may route call to service operator who has been waiting longestfor next help request. Specific user history information is alsopreferably tracked and can be used in selecting service operators 60.For example, if a service operator 60 has ever worked with a particularuser before, the system may take this into consideration when routingthe request based on positive or negative feedback from previous servicesessions service operators 60 may also be associated with specificcorporate clients where the operator has provided services for thecorporate client in the past.

The present invention also allows service operators 60 to search forother service operators having qualifications fitting some portion ofthe service needed and bring those service operators in by some computerconnection to assist in providing services. The system may use knowledgebases and internal directories to enable cross-referencing ofinformation as well as internal communications between operators formulti-level assistance and simultaneous screen sharing between multipleoperators delivering service to end users on a single or multipledisplay systems, as well as for groups of end-users (or audience)receiving educational, training, or presentation services from single ormultiple service operators 60 performing tasks and presentingcoordinated information simultaneously on single or multiple systemswith single or multiple displays. For example, a service operator 60providing services in service area A discovers that the user also needsservice in service area B. The service operator 60 then conducts asearch or uses a service request wizard 58 or other questionnaire tolocate a service operator with qualifications to provide services inservice area B and then contacts that service operator to requestservice. The service operator 60 for service area B then establishessome connection with the user's computer, such as sharing the existingremote desktop connection, and provides services in service area B tothe user. In the alternative, the service operator providing services inservice area A may transfer the connection to the service operator inservice area B instead of sharing the connection. These features of thepresent invention allow services to be provided on a many to one basis(e.g., a plurality of service operators providing services to a singleuser at the same time) or on a one-to-many basis (e.g., a single serviceoperator providing services to a number of users at the same time) orany intermediate combination of service operators to users.

Many modifications and other embodiments of the invention will come tothe mind of one skilled in the art having the benefit of the teachingspresented in the foregoing descriptions and the associated drawings.Therefore, it is understood that the invention is not to be limited tothe specific embodiments disclosed, and that modifications andembodiments are intended to be included as readily appreciated by thoseskilled in the art.

That which is claimed is:
 1. A computer-implemented method forallocating services among a plurality of service operators each capableof providing at least one service, each service operator operating arespective computer, the method comprising: receiving at a supportserver a request for service from at least one computer being operatedby a user; generating a questionnaire to be answered by the useroperating the at least one computer; selecting at least one serviceoperator based upon the answered questionnaire; and establishing aservice session between the at least one computer being operated by theuser and the computer being operated by the at least one selectedservice operator for providing the requested service.
 2. The method ofclaim 1 wherein the requested service is being performed on the at leastone computer being operating by the user.
 3. The method of claim 1wherein the requested service is being performed on the computer beingoperated by the at least one selected service operator.
 4. The method ofclaim 1 wherein the requested service is being performed at a serviceworkspace that is separate from the at least one computer beingoperating by the user and the computer being operated by the at leastone selected service operator, with the service workspace beingaccessible by each.
 5. The method of claim 4 wherein the at least oneselected service operator continues to provide service on the serviceworkspace even after the user terminates their connection thereto. 6.The method of claim 1 further including in the established servicesession a computer being operated by a second service operator, thesecond service operator also for providing the requested service.
 7. Themethod of claim 1 wherein the questionnaire requests informationrelating to a type of service to be performed.
 8. The method of claim 1wherein the questionnaire is generated based upon information collectedfrom the at least one computer being operated by the user.
 9. The methodof claim 1 wherein the questionnaire further comprises prompting theuser to select a priority level of the requested service.
 10. The methodof claim 9 wherein the priority level corresponds to a level of urgencyof the requested service.
 11. The method of claim 9 wherein the prioritylevel corresponds to a level of expertise by the plurality of serviceoperators.
 12. The method of claim 1 further comprising providingbilling information to the user during the service session, with thebilling information being updated during the service session.
 13. Themethod of claim 12 wherein the user is billed by the minute when the atleast one selected service operator is active, and if the at least oneselected service operator is not active, then the user is not billeduntil the at least selected service operator is active again.
 14. Themethod of claim 1 further comprising at least one service supervisormonitoring during the service session at least a portion of the serviceprovided by the at least one selected service operator.
 15. A computernetwork comprising: a plurality of service operator computers beingoperated by a plurality of service operators, each service operatorcapable of providing at least one service; at least one user computerbeing operated by a user; and a support server for receiving a requestfor service from said at least one user computer, said support serverconfigured for performing the following generating a questionnaire to beanswered by the user operating said at least one user computer,selecting at least one service operator from the plurality of serviceoperators based upon the answered questionnaire, and establishing aservice session between said at least one user computer and said serviceoperator computer being operated by the at least one selected serviceoperator for providing the requested service.
 16. The computer networkof claim 15 wherein the requested service is being performed on said atleast one user computer.
 17. The computer network of claim 15 whereinthe requested service is being performed on said service operatorcomputer being operated by the at least one selected service operator.18. The computer network of claim 15 further comprising a serviceworkspace that is separate from said at least one user computer and saidservice operator computer being operated by the at least one selectedservice operator, with said service workspace being accessible by each.19. The computer network of claim 18 wherein the at least one selectedservice operator continues to provide service on said service workspaceeven after the user terminates their connection thereto.
 20. Thecomputer network of claim 15 wherein said support server is furtherconfigured for including in the established service session a computerbeing operated by a second service operator, the second service operatoralso for providing the requested service.